#ifndef DATACLASS_H
#define DATACLASS_H

#include <QMainWindow>
#include <QObject>
#include <QVector>

using namespace std;

class DataClass : public QObject
{
    Q_OBJECT
public:
    string line;//保存着GPS信息

    explicit DataClass(QObject *parent = nullptr);

    /*各通道数据数量*/
    int data0_size, data1_size, data2_size, data3_size, data4_size, data5_size, data6_size;
    int data7_size, data8_size, data9_size, dataA_size, dataB_size, pitch_size, roll_size;

    /*方便外部调用*/
    int min_data_size, plot_sizeFoot;
    //min_data_size是各通道数据中最小的（当需要判断通道是否使用时，该值的获取方法应该进行修改）
    //plot_sizeFoot是绘制通道与姿态信息时，姿态信息横轴步长

    QVector<unsigned char> gpsInformation;

    QVector<double> indData;//x轴

    //传递给外部的采点组
    QVector<double> pitchCa, rollCa;
    QVector<double> maxData0,maxData1,maxData2,maxData3,maxData4,maxData5,maxData6,maxData7,maxData8,maxData9,maxDataA,maxDataB;

private:
    int max, min;//全局变量，在findMaxMin与findMaxMinData之间传递参数

    //下面两行为从文件中读取之后，存储的冲击波数据
    QVector<int> dataVector0,dataVector1,dataVector2,dataVector3,dataVector4,dataVector5;
    QVector<int> dataVector6,dataVector7,dataVector8,dataVector9,dataVectorA,dataVectorB;

    QVector<double> pitch, roll;//从文件中读取之后，存储两个角的数据
    QVector<int> data_size;//存储着各个数组的大小值


signals:

public slots://slot函数的说明在.cpp文件中
    void txt2dataV(QString filePath);
    void initializeMaxMin();
    void findMaxMinData(int begin, int end, bool *flag);
private slots:
    void findMaxMin(QVector<int> dataVector,int beginN, int sizeMe);

};

#endif // DATACLASS_H
